<?php
require_once("../includes/config.php");
include DIR_INCLUDES_FT.'bootstrap.php';

try{
	if(isset($_POST['id']) && $_POST['id'] != ''){
		$produto = Doctrine::getTable("Produtos")->find($_POST['id']);
	} else {
		$produto = new Produtos();
	}
	
	$conection->beginTransaction();
	
	$produto->nome= $_POST['nome'];
	$produto->descricao= $_POST['descricao'];
	$produto->categoria_id= $_POST['categoria'];
	$produto->save();
	
	$lojas_associadas = array();

    if (isset($_POST['logas_associadas'])) {
        foreach ($_POST['lojas_associadas'] as $loja_id) {
            $produto_na_loja = false;
            if(isset($_POST['id']) && $_POST['id'] != ''){
                $produto_na_loja = Doctrine_Query::create()->from("ProdutosLojas pl")
                                    ->where("loja_id = ? and produto_id = ?", array($produto->id, $loja_id))->fetchOne();
            }

            if (!$produto_na_loja) {
                $produto_na_loja = new ProdutosLojas();
                $produto_na_loja->produto_id = $produto->id;
                $produto_na_loja->loja_id = $loja_id;
                $produto_na_loja->save();
            }

            $lojas_associadas[] = $produto_na_loja->id();
        }
    }
	
	if(isset($_POST['id']) && $_POST['id'] != ''){
		$lojas_associadas_eliminar = Doctrine_Query::create()->from("ProdutosLojas")
										->whereNotIn("id", $produtos_guardados_na_loja)
										->andWhere("produto_id != ?", array($produto->id))
										->execute();
		foreach($lojas_associadas_eliminar as $produto_na_loja){
			$produto_na_loja->delete();
		}
	}
	
	if(isset($_POST['id']) && $_POST['id'] != ''){
		$refer = DIR_WS."redirect.php?refere=".$_SERVER['HTTP_REFERER'];
	} else {
		$refer = DIR_WS."foward.php?refere=".DIR_CODIGOS_WS."novo_codigo_produto.php?id_produto=".$produto->id;
	}
	
	$conection->commit();
	header("location: ".$refer);
} catch (Exception $e) {
	$conection->rollback();
	header("location: ".DIR_WS."error_message.php?refere=".$_SERVER['HTTP_REFERER']);
}
?>